home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
basic
/
pbtool.exe
/
FREESPC.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-10-28
|
2KB
|
55 lines
'----------------------------------------------------------
' PROGRAM: FREESPC.BAS PROGRAMMER: A. KELLETT
' DATE-WRITTEN: 10/28/91
' USING POWER BASIC V2.10A
'
' THIS PROGRAM ALLOWS THE USER TO DISPLAY THE AMOUNT OF
' FREE SPACE ON THE SPECIFIED DISK DRIVE.
'
' VERSION: 0.00 LAST UPDATED: 00/00/00
'----------------------------------------------------------
CLS
PRINT " THIS PROGRAM CHECKS THE AMOUNT OF FREE SPACE ON THE DISK DRIVE"
PRINT " YOU SPECIFY."
PRINT:PRINT
PRINT:PRINT "PLEASE ENTER DRIVE NUMBER [1-4, A=1, B=2, ETC]"
KY$ = ""
DO
KEYIN$ = UCASE$(INKEY$)
LOOP UNTIL INSTR(" 1234", KEYIN$) > 1
DRIVE% = VAL(KEYIN$)
FREE.SPACE& = FNFreeSpace(DRIVE%)
IF DRIVE% = 1 THEN
DRIVE$ = "A"
ELSEIF DRIVE% = 2 THEN
DRIVE$ = "B"
ELSEIF DRIVE% = 3 THEN
DRIVE$ = "C"
ELSEIF DRIVE% = 4 THEN
DRIVE$ = "D"
END IF
PRINT:PRINT "FREE SPACE ON DRIVE ";DRIVE$;": IS ";
PRINT USING " ###,###,###";FREE.SPACE&
END
' Drive% must be from 0 - 4 [0 = default, 1 = A,... 4 = D]
' print "Free bytes = ";FNFreeSpace(drive%)
'------ This function returns free disk space of specified drive -----
DEF FNFreeSpace(Drive%)
' DOS function 36H returns the number of free
' clusters on the selected drive
' 0 = default, 1 = A, 2 = B, 3 = C, 4 = D
REG 4,drive% ' pass drive number in DX register
REG 1,&H3600 ' AH = function number
CALL INTERRUPT &H21 ' tell DOS to get on with it!
' space = available clusters * bytes/sector *
' sectors/cluster
' space = BX * CX * AX
FNFreeSpace = CSNG(REG(2))*REG(3)*REG(1)
END DEF